home *** CD-ROM | disk | FTP | other *** search
- ************************* MASTER CODE ***************************************
-
- The name of the first file in this disk's directory identifies the volume,
- issue number and revision of the disk. The format of this filename is:
-
- !CDmvvii.rrr
-
- where
-
- ! = the '!' character
- m = C for C Users Journal, W for Windows/DOS Developer's Journal
- vv = volume
- ii = issue
- rrr = revision (001 for initial release, 002 for next update, etc.)
-
- The file UPDATE.DOC contains information about any additions or
- corrections to material on the disk since the original magazine
- publication.
-
- If you have obtained this code from a floppy diskette or from CompuServe, the
- headings under the column "FILENAME" represent the names of .ZIP files. All
- files listed under the filename are archived in the .ZIP file.
-
- If you have obtained this code from UUNET, the headings under the column
- "FILENAME" represent the names of subdirectories. All files listed under the
- "filename" are included in a subdirectory of that name.
-
- Keywords: C C++ Compression Pattern Printable Bit Archive
-
- The code listings for the February 1994 issue of The C Users Journal
- include source for Philip Gage's Byte Pair Compression algorithm, Erick
- Otto's text pattern matching, Thad Smith III's
- binary-to-printable-character encoding algorithm, Siegfried Heintze's
- class for bit arrays, and Pat LaBrocca's self-extracting archive.
-
- ************************* FILE DESCRIPTION **********************************
-
- The following files are included in the disk:
-
- FILENAME AUTHOR-NAME TITLE PAGE
- (Zip archive/
- subdirectory name)
- -------------------------------------------------------------------------------
- plauger P.J. Plauger Standard C 10
-
- xmsg.h - listing 1, A class to handle exceptions
- reraise.h - listing 2, Definition of class reraise
- xlogic.h - listing 3, A derived class to handle logic errors
- xruntime.h - listing 4, A derived class to handle runtime errors
- xdomain.h - listing 5, A derived class to handle domain errors
- xrange.h - listing 6, A derived class to handle range errors
- badcast.h - listing 7, A class to handle bad dynamic casts
-
- saks Dan Saks Stepping Up to C++ 87
-
- mix.h - listing 1, A class hierarchy that mixes virtual and
- non-virtual overriding
- testmix.cpp - listing 2, A test program for the hierarchy in
- mix.h (listing 1)
- overload.h - listing 3, A class with overloaded virtual functions
- hides.cpp - listing 4, Demonstrates how a declaration in an
- inner scope hides all functions with the same name
- in an outer scope
- partial.h - listing 5, A class hierarchy that overrides some but
- not all overloaded virtual functions
- testpart.cpp - listing 6, A test program for partial.h (listing 5)
-
- gage Philip Gage A New Algorithm for 23
- Data Compression
-
- compress.c - listing 3, The compression program
- expand.c - listing 4, The expansion program
-
- otto Erick Otto Two Fast Pattern-Matching 39
- Algorithms
-
- bm.c - listing 1, The Boyer and Moore algorithm
- bzyatg.c - listing 2, The Beaza-Yates and Gonnet algorithm
- freq.c - listing 3, Generates a header file with frequency
- distribution of specified file
-
- smith Thad Smith III Coding with Printable 51
- Characters
-
- code13_2.c - listing 1, Codes 13-bit values into two characters
- conv2_13.c - listing 2, Translates two characters back to 13 bits
- calc9_11.c - listing 3, Calculation to encode 9 input bytes into
- 11 characters
- baz.h - listing 4, External definitions of BAZ routines
- bazcom.h - listing 5, Internal definitions for BAZ routines
- ebaz.c - listing 6, Code to convert 9 bytes to 11 characters
- dbaz.c - listing 7, Decodes 9 bytes from 11 characters
- crc16.h - listing 8, Header for 16-bit CRC calculation
- crc16g.h - listing 9, Calculates the CRC, a block at a time
- baz.c - listing 10, Encodes binary file to BAZ911 file
- zab.c - listing 11, Decodes BAZ911-encoded file
-
- heintze Siegfried Heintze Intuitive Access to 67
- Bit Arrays
-
- bitarr.h - listing 1, Definition of classes BitField and
- BitArray
- bitarr.cpp - listing 2, Demonstrates operation of bit arrays
-
- labrocca P. J. LaBrocca A Self-Extracting 75
- Archive for MS-DOS
-
- sea.h - listing 1, Prefix header structure
- arch.c - listing 2, Archiver
- extr.c - listing 3, Extraction module
- makefile.mak - listing 4, Makefile for arch.exe and extr.exe
- remake.bat - listing 5, A batch file to check MagicNumber
- remake.awk - listing 6, An awk file to check the size
- of MagicNumber
-
- allison Chuck Allison Code Capsules: Variable-Length 103
- Argument Lists
-
- max1.c - listing 1, A function to find the largest
- of n integers
- vargs1.c - listing 2, A function to extract integer/string
- argument pairs
- vargs2.c - listing 3, Encapsulates the parameter extraction
- logic
- vargs3.c - listing 4, Uses macros in stdarg.h to process
- variable-length argument lists
- max2.c - listing 5, Implements maxn via the stdarg macros
- concat.c - listing 6, A function to concatenate a variable
- number of strings
- tblrow.c - listing 7, Uses a va_list to populate tables
- fatal.c - listing 8, Uses vprintf to exit program with error
- message
- prepend.c - listing 9, Demonstrates use of prepend function
- preprint.c - listing 10, Functions to build strings backwards
- commas.c - listing 11, Uses prepend and preprintf functions to
- format numbers with comma separators
-
-
- letters Letters to Editor We Have Mail 118
-
- dyn2darr.c - not listed in magazine, submitted by Steve Coffman
- as improvement to P.J LaBrocca's code (see "Dynamic
- Two-Dimensional Arrays," by P.J. LaBrocca, CUJ,
- November 1993, page 72.
- dyn2darr.h - not listed in magazine, submitted by Steve Coffman
- as improvement to P.J. LaBrocca's code
-
-
- ******************************************************************************
-
-
- If you have questions regarding to the disk, please call or write us.
-
- -----------------------------------------------------------------------------
- R&D Publications, Inc.
- 1601 W. 23rd St. Suite 200
- Lawrence, KS 66046
- (913) 841-1631
- -----------------------------------------------------------------------------
-
-